package com.ktgj.customer.mapper;

import java.util.List;

import com.ktgj.customer.domain.Customer;
import com.ktgj.customer.domain.PointRecord;
import com.ktgj.customer.domain.vo.IntegralVo;
import com.ktgj.customer.domain.vo.PointRecordListVo;
import org.apache.ibatis.annotations.Param;

/**
 * 积分明细
Mapper接口
 * 
 * @author ruoyi
 * @date 2021-07-27
 */
public interface PointRecordMapper 
{
    /**
     * 查询积分明细

     * 
     * @param pntRecordId 积分明细
ID
     * @return 积分明细

     */
    public PointRecord selectPointRecordById(Long pntRecordId);

    /**
     * 查询积分明细
列表
     * 
     * @param pointRecord 积分明细

     * @return 积分明细
集合
     */
    public List<PointRecord> selectPointRecordList(PointRecord pointRecord);

    /**
     * 新增积分明细

     * 
     * @param pointRecord 积分明细

     * @return 结果
     */
    public int insertPointRecord(PointRecord pointRecord);

    /**
     * 修改积分明细

     * 
     * @param pointRecord 积分明细

     * @return 结果
     */
    public int updatePointRecord(PointRecord pointRecord);

    /**
     * 删除积分明细

     * 
     * @param pntRecordId 积分明细
ID
     * @return 结果
     */
    public int deletePointRecordById(Long pntRecordId);

    /**
     * 批量删除积分明细

     * 
     * @param pntRecordIds 需要删除的数据ID
     * @return 结果
     */
    public int deletePointRecordByIds(Long[] pntRecordIds);

    //查询当前可用积分
    public List<PointRecord> queryUserCreditsNum(Long customerId);

    //查询即将过期的积分
    public Long queryUserMaturityNum(Long customerId);

    //查询以使用的积分
    public List<PointRecord> queryUserUseNum(Long customerId);

    /**
     * 查询当前可扣减的积分记录列表
     * */
    public List<PointRecord> queryUsablePointRecordList(Long customerId);

    public void updateAvailableValueEqualZero(@Param("ids") List<Long> ids);

    public PointRecord querySignInReCord(Long customerId);

    /**
     * 我的-积分
     * @return
     */
    public List<PointRecord> selectPointRecordByCustomerId(Long customerId);

    /**
     * 我的-积分（更新可用积分）
     * @return
     */
    public int updatePointRecordByCustomerId(PointRecord pointRecord);

    /**
     * 查询会员所有可操作积分
     * */
    public List<PointRecord> selectPointRecordIntegral(Long customerId);

    /**
     * 积分记录列表
     * */
    public List<PointRecord> pointRecordList(PointRecordListVo pointRecordListVo);

    /**
     * 查询会员所有未过期的积分记录
     * */
    public List<PointRecord> integralStatistics(Long customerId);

    /**
     * 查询会员所有未过期的增加积分记录
     * */
    public List<PointRecord> statistics(Long customerId);

    /**
     * 修改会员全部数据
     * */
    public int updateStatistics(PointRecord pointRecord);

    /**
     * 当前会员所有积分记录
     * */
    public List<PointRecord> dominateIntegral(Long id);
}
